package leetcode.year2021.month11;

// 226. 翻转二叉树
public class _04_2InvertTree226 {
  //  递归，翻转二叉树
  public TreeNode invertTree(TreeNode root) {
    if (root == null) {
      return null;
    }
    TreeNode leftNode = invertTree(root.left);
    TreeNode rightNode = invertTree(root.right);
    root.left = rightNode;
    root.right = leftNode;
    return root;
  }


  public class TreeNode {
    int val;
    TreeNode left;
    TreeNode right;

    TreeNode() {
    }

    TreeNode(int val) {
      this.val = val;
    }

    TreeNode(int val, TreeNode left, TreeNode right) {
      this.val = val;
      this.left = left;
      this.right = right;
    }
  }

  /**
   * 226. 翻转二叉树
   * 翻转一棵二叉树。
   *
   * 示例：
   *
   * 输入：
   *
   *      4
   *    /   \
   *   2     7
   *  / \   / \
   * 1   3 6   9
   * 输出：
   *
   *      4
   *    /   \
   *   7     2
   *  / \   / \
   * 9   6 3   1
   * 备注:
   * 这个问题是受到 Max Howell 的 原问题 启发的 ：
   *
   * 谷歌：我们90％的工程师使用您编写的软件(Homebrew)，但是您却无法在面试时在白板上写出翻转二叉树这道题，这太糟糕了。
   * 通过次数321,230提交次数407,438
   */

}
